package com.senlingspace.system.domain.vo;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 微信小程序端订单列表VO
 *
 * @author lebronjames
 * @date 2024/09/30
 */
@Data
public class MiniAppOrderVo implements Serializable {
    /**
     * 主键
     */
    private Long orderId;

    /**
     * 订单编号
     */
    private String orderNumber;

    /**
     * 门店名称
     */
    private String shopName;

    /**
     * 订单来源（10=门店，20=抖音，30=美团，40=小程序）
     */
    private Integer source;

    /**
     * 订单类型：101=门票、102=商品、103=门票+商品
     */
    private Integer orderType;

    /**
     * 票类订单业务状态：
     * <p>
     * 用户小程序中，只展示：待核销（UNREDEEMED）、已退款（REFUNDED）、已完成（COMPLETED）
     * <p>
     * 待核销（UNREDEEMED）、
     * 已核销（REDEEMED）、
     * 待支付（PENDING_PAYMENT）、
     * 订单取消（ORDER_CANCELLED）、
     * 已退款（REFUNDED）、
     * 已领手环（WRISTBAND_RECEIVED）、
     * 已领设备（DEVICE_RECEIVED）、
     * 已完成（COMPLETED）
     */
    private String businessStatus;

    /**
     * 商品订单业务状态：（仅用于orderType=102）
     * <p>
     * 待支付（PENDING_PAYMENT）、
     * 已完成（COMPLETED）、
     * 待取货（WAITING_FOR_PICKUP）、
     * 待发货（WAITING_FOR_SHIPPING）、
     * 已发货（SHIPPED）
     */
    private String goodsStatus;

    /**
     * 订单金额
     */
    private String totalAmount;

    /**
     * 购买数量（购票数量；商品购买数量）
     */
    private int buyCount;

    /**
     * 票信息
     */
    private Ticket ticket;

    /**
     * 商品信息
     */
    private List<Goods> goods;

    @Data
    public static class Ticket implements Serializable {
        /**
         * 封面图
         */
        private String cover;

        /**
         * 项目名称
         */
        private String projectName;

        /**
         * 票类名称
         */
        private String categoryName;
    }

    @Data
    public static class Goods implements Serializable {
        /**
         * 封面图
         */
        private String cover;

        /**
         * 商品名称
         */
        private String goodsName;

        /**
         * 小项购买数量
         */
        private Integer buyQuantity;

        /**
         * 小项商品价格汇总
         */
        private String price;
    }

}
